Information recorded with respect to recording media is typically employed as a means of preserving that information. Error correction encoding of that information allows the information to be recorded and preserved despite the presence of certain types of errors in the recorded information. Various approaches have evolved regarding the types of error correction encoding to apply to the information. A typical approach is to use a true cross-product error correction code. For example, the information is arranged in a two-dimensional array with rows and columns, and two error correction codes (ECC) are applied to the matrix. One ECC (C1) is applied along the rows, and another ECC (C2) is applied along the columns. If the ECC codes are systematic ECC codes, then the data bytes in the original array are not altered; rather, some number of error correction bytes are appended, forming redundancy of information so that some number of errors might be corrected. For example, a C1 code might append a given number of error correction bytes to each row, and a C2 code might append a given number of error correction bytes to each column. The data bytes together with the appended error correction bytes form an error correction codeword. As an example, a C1 codeword is the data bytes in a row plus the appended C1 error correction bytes. Similarly, a C2 codeword is the data bytes in a column plus the appended C2 error correction bytes.
One of the ECC codes, e.g. C1, might be called the inner code, and the other ECC code, e.g. C2, the outer code. The outer code may encode not only the data bytes, but also the appended error correction bytes of the inner code, and may encode a plurality of C1 codewords. The code names have to do with the typical order of decoding. The inner code is typically decoded first, and the outer code is typically decoded next, though they could be appended in opposite order.
The inner and outer codes might be primarily designed to handle different error mechanisms. As an example, if complete C1 inner codewords are recorded to a given tape track, correction with the C1 code could allow correction of a small error events due to media imperfections or noise. But a long or burst error along a given tape track, e.g. due to a scratch in the direction of the tape's length (longitudinally), may exceed the ability of C1 to correct it. For this reason, C2 ECC codewords might be spread laterally in a pattern across different tracks so that data from one track which cannot be corrected with C1 may be corrected instead by using data from other tracks, or data which is distributed relatively far away along the same track for C2. For example, if a tape is recorded 8 tracks at a time, and if the C2 outer code consists of 64 bytes, then ⅛ of the data in each C2 codeword is typically recorded to each of the 8 simultaneous tracks, and each track must typically contain 8 of the bytes of that codeword. But, the 8 bytes along a given track may be spread apart longitudinally, so that a scratch or burst error of limited length would be unlikely to cause more than one of the bytes in a given track to be read in error. For example, the 8 bytes from a given C2 codeword might be spread multiple C1 codewords apart along a track which could be a thousand or more bytes apart.
Herein, an inner correction code applied to a row of the matrix, and the resultant inner correction codewords, are called “inner code”; and the outer correction code, and the resultant outer correction codewords, are called “outer ECC information”.
The data rate of recording to and reading from a recording media is dependent on a number of factors, and one factor is the number of tracks that are recorded or read at the same time. Thus, it may be desirable to increase the amount of information and the number of tracks that are recorded or read at the same time. However, in doing so, it is also desirable to increase the power of the outer correction code to cope with the increased amount of information and to continue to allow recreation of the data. For example, doubling the amount of information per track and recording that amount of information on double the number of tracks that are recorded or read at the same time, may result in having to increase the amount of inner code and of outer ECC information at least proportionally, so that at least four times as many total ECC bytes are recorded.